package com.king.designpatterns.hybriddesignpattern.hybriddesignpattern.chainofcommandandresponsibility;

/**
 * FileManager类负责与操作系统交互，要将UNIX的命令迁移到Windows上运行，此时需要调用Windows的低层函数
 * 因调用Windows的低层函数实现较复杂，且与本章的内容没有关系，所以采用示例性代码代替
 *
 * 如果需要真实实现，有以下三种思路：
 *      ■ 通过java.io.File类自己封装类似UNIX的返回格式；
 *      ■ 通过java.lang.Runtime类的exec()方法执行DOS的dir命令，产生类似的ls结果，但是格式与UNIX不同，需要对结果进行处理；
 *      ■ 通过JNI（Java Native Interface）调用Windows的系统API。
 *
 * @author king
 * @date 2021-06-11 14:54
 */
public class FileManager {
    // ls命令
    public static String ls(String commandName) {
        return "file1\nfile2\nfile3\nfile4";
    }

    // ls -l命令
    public static String ls_l(String commandName) {
        return "drw-rw-rw root system 1024 2009-8-20 10:23 file1\n" +
                "drw-rw-rw root system 1024 2009-8-20 10:23 file2\n" +
                "drw-rw-rw root system 1024 2009-8-20 10:23 file3";
    }

    // ls -a命令
    public static String ls_a(String commandName) {
        return ".\nnn\nfile1\nfile2\nfile3";
    }
}
